package com.xiaoxin.xinlikesystem.utils;

import com.xiaoxin.xinlikesystem.constant.ThumbConstant;

/**
 * @version 1.0
 * @Author 武小新
 * @Date 2025/5/14 17:03
 * @注释 常用Redis的Key获取方法
 */
public class RedisKeyUtil {

    /**
     * 分布式锁-点赞
     *
     * @param userId 用户ID
     * @return 锁名
     */
    public static String getDoThumbLockKey(long blogId, long userId) {
        return ThumbConstant.LOCK_DO_THUMB_KEY_PREFIX + blogId + ":" + userId;
    }

    /**
     * 分布式锁-取消点赞
     *
     * @param userId 用户ID
     * @return 锁名
     */
    public static String getUndoThumbLockKey(long blogId, long userId) {
        return ThumbConstant.LOCK_UNDO_THUMB_KEY_PREFIX + blogId + ":" + userId;
    }


    /**
     * 用户点赞
     *
     * @param userId 用户ID
     * @return 点赞的键
     */
    public static String getUserThumbKey(long userId) {
        return ThumbConstant.USER_THUMB_KEY_PREFIX + userId;
    }

    /**
     * 用户点赞记录
     *
     * @param time 时间戳
     * @return 点赞记录的键
     */
    public static String getTempThumbKey(String time) {
        return ThumbConstant.TEMP_THUMB_KEY_PREFIX.formatted(time);
    }
}
